home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / apps / 123 / vcsrc / sc.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-05-10  |  1.5 KB  |  85 lines

  1. /*    VC    A Table Calculator 
  2.  *        Common definitions 
  3.  * 
  4.  *        original by James Gosling, September 1982 
  5.  *        modified by Mark Weiser and Bruce Israel, 
  6.  *            University of Maryland 
  7.  * 
  8.  */ 
  9.  
  10. #include<stdio.h> 
  11.  
  12. #ifdef MCH_AMIGA 
  13. #define ROWS    23 
  14. #define COLS    79 
  15. #else 
  16. #define ROWS    24 
  17. #define COLS    80 
  18. #endif 
  19.  
  20. #ifdef DECLARE 
  21. #define dec 
  22. #else 
  23. #define dec extern 
  24. #endif 
  25.  
  26. #define MAXROWS 200 
  27. #define MAXCOLS 40 
  28.  
  29. struct ent { 
  30.     double v; 
  31.     char *label; 
  32.     struct enode *expr; 
  33.     short flags; 
  34.     short row, col; 
  35.     struct ent *next; 
  36. }; 
  37.  
  38.  
  39. struct enode { 
  40.     int op; 
  41.     union { 
  42.     double k; 
  43.     struct ent *v; 
  44.     struct { 
  45.         struct enode *left, *right; 
  46.     } o; 
  47.     } e; 
  48. }; 
  49.  
  50. /* op values */ 
  51. #define O_VAR 'v' 
  52. #define O_CONST 'k' 
  53. #define O_REDUCE(c) (c+0200) 
  54.  
  55. /* flag values */ 
  56. #define is_valid     0001 
  57. #define is_changed   0002 
  58. #define is_lchanged  0004 
  59. #define is_leftflush 0010 
  60. #define is_deleted   0020 
  61.  
  62. #define ctl(c) ('c'&037) 
  63.  
  64. dec struct ent *tbl[MAXROWS][MAXCOLS]; 
  65.  
  66. dec int strow, stcol; 
  67. dec int currow, curcol; 
  68. dec int savedrow, savedcol; 
  69. dec int FullUpdate; 
  70. dec int maxrow, maxcol; 
  71. dec int fwidth[MAXCOLS]; 
  72. dec int precision[MAXCOLS]; 
  73. dec char hidden_col[MAXCOLS]; 
  74. dec char hidden_row[MAXROWS]; 
  75. dec char line[1000]; 
  76. dec int linelim; 
  77. dec int changed; 
  78. dec struct ent *to_fix; 
  79. dec struct enode *new(); 
  80. dec struct ent *lookat(); 
  81. dec struct enode *copye(); 
  82. dec char *coltoa(); 
  83.  
  84. dec int modflg; 
  85.